# -*- coding: UTF-8 -*-
from pyspark import SparkContext

if __name__ == "__main__":
    #********** Begin **********#

    # 1.初始化 SparkContext，该对象是 Spark 程序的入口
    sc = SparkContext('local', 'Simple App')

    # 2.创建一个1到5的列表List
    List = range(1, 6)

    # 3.通过 SparkContext 并行化创建 rdd
    rdd = sc.parallelize(List)

    # 4.使用rdd.collect() 收集 rdd 的元素。
    rdd1 = rdd.collect()
    print(rdd1)
    """
    使用 map 算子，将 rdd 的数据 (1, 2, 3, 4, 5) 按照下面的规则进行转换操作，规则如下:
    需求：
        偶数转换成该数的平方
        奇数转换成该数的立方
    """
    # 5.使用 map 算子完成以上需求
    rdd_map = rdd.map(lambda x: x**2 if x%2==0 else x**3)

    # 6.使用rdd.collect() 收集完成 map 转换的元素
    rdd2 = rdd_map.collect()
    print(rdd2)
    # 7.停止 SparkContext
    sc.stop()

    #********** End **********#
